#include "inserir.h"


/** @brief Funcao que escreve os arquivos pks 

 	@param origem Base de dados.
 	@param destino Pk correspondente.
  	@param atual Posicao atual do arquivo destino.
                                         */

void Writefile(FILE *origem, FILE *destino, int atual);

/** @brief Funcao para completar espacos 

	@param nome Str a ser completada.
  	@param tamanho Tamnho da str.
                                         */

void Fillblanks(char nome[], int tamanho);

/** @brief Funcao adicionar os registros de pk e sk na memoria em forma de vetor.

  	@param obras O vetor a ser adicionado a obra.
  	@param titulo Str sobre a obra (titulo, autor, tipo, ano).
	@param nrr  Seu nrr.
	@param tamanho Tamanho da str 
	@param vetor Posicao do vetor.
	
	@return Retorna o novo tamanho 
	
	@retval tamanho Nao foi adicionado
	@retval tamanho+1 Foi adicionado
                                         */

int Le_PK(pNo_PK *obras, char *titulo, int nrr, int tamanho, int vetor);

/** @brief Funcao para gravar as informacoes dos vetores de pk e sk em arquivos (nrr.dat e sk_*.dat).

	@param string  O nome do arquivo a ser criado.
  	@param tamanho Quantos registros o vetor possui.
	@param obras Vetor correspondente.
                                         */

void GravaArray(char string[], int tamanho, pNo_PK obras);

/** @brief Funcao para transformar uma str em maiusculo.

	@param s  A string a ser transformado.
                                         */


void Str_toupper(char *s);


/** @brief Funcao adicionar os registros de pk e sk na memoria em forma de vetor.

  	@param obras O vetor a ser adicionado a obra.
  	@param origem A base de dados.
	@param destino  O arquivo a ser gravado (pk_*.dat)
	@param tamanhostr Tamanho da str que esta sendo inserida
	@param indice Indice de nrr.
	@param atual A posicao atual do arquivo destino.
  	@param tamanho Tamanho que esta os vetores sks ate o momento
	@param contador  Posicao atual da base.
	
	@return Retorna o tamanho atual atualizado.
	
	@retval atual + tamanhostr;
                                         */
int Secondary(pNo_PK *obras, FILE *origem, FILE *destino, int tamanhostr,int *indice, int atual, int *tamanho, int contador) ;

